﻿/*
SINACOR - BMF&Bovespa
Arquivo: BloqueioExistente.cs
Criado em: 08-jun-2010 17:14:31
Arquiteto Responsável: p-wgeneroso
*/
using System;
using System.Collections.Generic;
using System.Text;
using Sinacor.Infra.Common.Validation;
using Sinacor.Infra.Common.Exceptions;
using Sinacor.Infra.Service.ExceptionHandling;
using Sinacor.Infra.Service.Validation;
using Sinacor.Infra.Service.Validation.BusinessRules;


namespace Sinacor.Servico.Bovespa.ManutencaoOrdens.BusinessLogic.BusinessRulesValidation 
{
	public class BloqueioExistente : BaseBusinessRuleValidation<BusinessEntity.Bloqueio>, IBusinessRuleValidation 
	{
		#region Atributos
        private int _erroBloqueioNaoExistente = 109745;
		#endregion

		#region Propriedades
		public int ErroBloqueioNaoExistente
		{
			get { return _erroBloqueioNaoExistente; }
			set { _erroBloqueioNaoExistente = value; }
		}
		#endregion

		#region Métodos
		public List<ValidationError> GetErrors()
		{
            return this.ErrorsList;
		}

		public void Validate()
		{
            ResourceAccess.Bloqueio raBloqueio = new ResourceAccess.Bloqueio();
            BusinessEntity.Parameter.FiltroBloqueio filtro = null;
            List<BusinessEntity.Bloqueio> retornoBloqueios = null;

            if (this.EntityToValidate != null)
            {
                filtro = new BusinessEntity.Parameter.FiltroBloqueio
                {
                    Codigo = this.EntityToValidate.Codigo
                };

                retornoBloqueios = raBloqueio.ConsultarBloqueios(filtro);

                if (retornoBloqueios == null || retornoBloqueios.Count == 0)
                    this.AddValidationError(this.ErroBloqueioNaoExistente);
            }
		}
		#endregion
	}

}